package com.zjj.edu.system.service;

import com.zjj.edu.system.domain.SysTenant;
import com.zjj.edu.system.domain.SysTenantApplication;

import java.util.List;

/**
 * 租户业务层
 * 
 * @author zjj
 */
public interface ISysTenantService {
	
	/**
	 * 根据条件分页查询租户数据
	 * 
	 * @param Tenant 租户信息
	 * @return 租户数据集合信息
	 */
	public List<SysTenant> selectTenantList(SysTenant tenant);

	/**
	 * 查询所有租户
	 * 
	 * @return 租户列表
	 */
	public List<SysTenant> selectTenantAll();

	/**
	 * 通过租户ID查询租户
	 * 
	 * @param tenantId  租户ID
	 * @return 租户对象信息
	 */
	public SysTenant selectTenantById(Long tenantId);

	/**
	 * 通过租户ID删除租户
	 * 
	 * @param tenantId   租户ID
	 * @return 结果
	 */
	public boolean deleteTenantById(Long tenantId);

	/**
	 * 批量删除租户信息
	 * 
	 * @param ids  需要删除的数据ID
	 * @return 结果
	 * @throws Exception
	 *             异常
	 */
	public int deleteTenantByIds(String ids) throws Exception;

	/**
	 * 新增保存租户信息
	 * 
	 * @param tenant
	 *            租户信息
	 * @return 结果
	 */
	public int insertTenant(SysTenant tenant);

	/**
	 * 修改保存租户信息
	 * 
	 * @param tenant
	 *            租户信息
	 * @return 结果
	 */
	public int updateTenant(SysTenant tenant);

	
	/**
	 * 租户状态修改
	 * 
	 * @param tenant
	 *            租户信息
	 * @return 结果
	 */
	public int changeStatus(SysTenant tenant);
	

    /**
     * 校验租户名称
     * 
     * @param tenant 租户信息
     * @return 结果
     */
    public String checkTenantNameUnique(SysTenant tenant);


	/**
	 * 校验租户编码
	 *
	 * @param tenant 租户信息
	 * @return 结果
	 */
	public String checkTenantCodeUnique(SysTenant tenant);

	/**
	 *
	 * @param tenantId
	 * @return
	 */
	List<SysTenantApplication> selectTenantApplicationByTenantId(Long tenantId);

	/**
	 *
	 * @param sysTenantApplication
	 * @param loginName
	 * @return
	 */
    int authApplication(SysTenantApplication sysTenantApplication, String loginName);
}
